package ipad.asia.service.bbs;

import ipad.asia.entity.Bbs;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.time.LocalDateTime;
import java.util.List;
@Component
@FeignClient(value = "PROVIDER-CHAT-9000")
public interface BbsFeign {
    /**
     * 根据id查到留言，返回留言实体，就根据留言可以找到发布留言的人
     * @param id
     * @return
     */
    @RequestMapping("/bbs/getById/{id}")
     Bbs findById(@PathVariable(value = "id") int id) ;

    /**
     * 根据产品查看留言
     * @param productId 产品id
     * @return
     */
    @RequestMapping("/bbs/getByProductId/{productId}")
     List<Bbs> findByProductId(@PathVariable(value = "productId") int productId) ;
    /**
     * 根据消费者查看留言，就自己可以查看自己的留言
     * @param consumerId
     * @return
     */
    @RequestMapping("/bbs/getByConsumerId/{consumerId}")
     List<Bbs> findByConsumerId(@PathVariable(value = "consumerId") int consumerId);
    /**
     * 店主查看自己店铺的留言
     * @param shopId
     * @return
     */
    @RequestMapping("/bbs/getByShopId/{shopId}")
     List<Bbs> findByShopId(@PathVariable(value = "shopId") int shopId) ;

    /**
     * 消费者就自己对具体商品留言，查看留言，留言通知
     * @param productId
     * @param consumerId
     * @return
     */
    @RequestMapping("/bbs/getByProductIdAndConsumerId/{productId}&{consumerId}")
     List<Bbs> findByProductIdAndConsumerId(@PathVariable(value = "productId") int productId,
                                                  @PathVariable(value = "consumerId") int consumerId) ;
    /**
     * 商家就自己对具体商品留言，查看留言，留言通知
     * @param productId
     * @param shopId
     * @return
     */
    @RequestMapping("/bbs/getByProductIdAndShopId/{productId}&{shopId}")
     List<Bbs> findByProductIdAndShopId(@PathVariable(value = "productId") int productId,
                                              @PathVariable(value = "shopId") int shopId);

    /**
     * 删除留言,每个人只能删除自己的留言
     * @param id
     */
    @RequestMapping("/bbs/deleteById")
     void deleteById(@RequestParam(value = "id") int id) ;

    /**
     * 发布留言
     * @param consumerId
     * @param shopId
     * @param productId
     * @param content
     * @param date
     */
    @RequestMapping("/bbs/launch")
     void launch(@RequestParam(value = "consumerId") int consumerId,
                       @RequestParam(value = "shopId") int shopId,
                       @RequestParam(value = "productId") int productId,
                       @RequestParam(value = "content") String content,
                       @RequestParam(value = "date") LocalDateTime date);
}
